#include "bsp_gpt_timing.h"

TIMING_FORMAT time_ms_ticks;

void GPT_Stop_timer(void)
{
    R_GPT_Stop(&g_timer0_ctrl);

	time_ms_ticks = 0;
	R_GPT_CounterSet(&g_timer0_ctrl, 0);
}

void GPT_Start_timer(void)
{
	time_ms_ticks = 0;
	R_GPT_CounterSet(&g_timer0_ctrl, 0);

    R_GPT_Start(&g_timer0_ctrl);
}

/* GPT 初始化函数 */
void GPT_Timing_Init(void)
{
    /* 初始化 GPT0 模块 */
    R_GPT_Open(&g_timer0_ctrl, &g_timer0_cfg);

    /* 启动 GPT0 定时器 */
    GPT_Start_timer();
}

TIMING_FORMAT GPT_Get_Tick(void) { return time_ms_ticks; }

// 32位GPT0定时器配置为自由计数模式，计数频率 120 MHz
// 开启溢出中断，中断周期为：2**32/120000000≈35.79s

/* GPT 中断回调函数 */
void gpt0_timing_callback(timer_callback_args_t * p_args)
{
    time_ms_ticks ++;
}

